In a distributed computing system including a client component (“client”) and a server component (“server”), the server may expose a service so that the client can use the exposed service. In a typical scenario, the client calls a method offered by the exposed service on the server. The server executes the method and returns a server object of a specific type to the client. The client may or may not modify the server object sent by the server. The client may also make a new method call using the server object. For example, the client may return the server object to the server as a parameter of the new method call. Similarly, a client may instantiate a client object and send it to the server. Thus, objects may be passed between the server and the client.
Conventionally, an object passed between a client and a server does not include information identifying the type of the object. For example, when the server sends a server object to the client, the server object conventionally does not contain any information that identifies the type of the server object. Thus, later, when the client sends the server object back to the server, the server cannot identify the original type of the server object, e.g., whether the server object was of a string or a Boolean.
While specific disadvantages of existing systems have been illustrated and described in this Background Section, those skilled in the art and others will recognize that the subject matter claimed herein is not limited to any specific implementation for solving any or all of the described disadvantages.